package com.luxsoft.siipap.em.replica.online;

import java.io.File;
import java.io.FilenameFilter;

import org.springframework.util.Assert;

/**
 * Se encarga de buscar archivos de replica para su prcesamiento
 * 
 * @author Ruben Cancino
 *
 */
public class ProveedorDeArchivos {
	
	public static final String DEFAULT_PATH="G:\\SIIPAP\\ARCHIVOS\\COMUNICA\\ORACLE";
	public static final String DEFAULT_ERROR_PATH="G:\\SIIPAP\\ARCHIVOS\\COMUNICA\\ORACLE\\errores";
	
	private File replicaDir;
	private FilenameFilter filter;
	
	
	
	public File[] buscarArchivos(){
		Assert.isTrue(getReplicaDir().isDirectory(),"No existe el directorio: "+getReplicaDir());
		return getReplicaDir().listFiles(getFilter());
	}

	public File getReplicaDir() {
		if(replicaDir==null)
			replicaDir=getDefaultDir();
		return replicaDir;
	}
	public void setReplicaDir(File replicaDir) {
		this.replicaDir = replicaDir;
	}
	

	public File getDefaultDir(){
		return new File(DEFAULT_PATH);
	}

	public FilenameFilter getFilter() {
		if(filter==null){
			filter=new PorFilter();
		}
		return filter;
	}

	public void setFilter(FilenameFilter filter) {
		this.filter = filter;
	}
	
	static class PorFilter implements FilenameFilter{
		public boolean accept(File dir, String name) {				
			return name.endsWith(".POR");
		}
	}

}
